package com.kinggm.util;

import org.springframework.data.redis.core.StringRedisTemplate;

public interface RedisLock {

    /**
     * @param stringRedisTemplate redis操作对象
     * @param redisKey            锁标识
     * @param uuid                线程标识
     * @param timeoutSec          超时时间 单位秒
     * @return true:获取锁成功   false：获取锁失败
     */
    boolean tryLock(StringRedisTemplate stringRedisTemplate, String redisKey, String uuid, long timeoutSec);


    /**
     * @param stringRedisTemplate redis操作对象
     * @param redisKey            锁标识
     * @param uuid                线程标识
     */
    void releaseLock(StringRedisTemplate stringRedisTemplate, String redisKey, String uuid);



    /**
     * @param stringRedisTemplate redis操作对象
     * @param redisKey            锁标识
     * @param uuid                线程标识
     * @param timeoutSec          超时时间 单位秒
     */
    void releaseLock(StringRedisTemplate stringRedisTemplate, String redisKey, String uuid, long timeoutSec);

}
